import { defineStore } from 'pinia'


// 创建一个全局的状态、容器
// 容器接受两个参数，第一个参数：容器id,第二个：容器的内容
// defineStore返回的是一个函数，这个函数安装userXXX去命名
// counter --> useCounter storeDemo --> useStoreDemo
export const useStoreDemo =defineStore('storeDemo', {
    // 容器的内容
    // state: 用来存储全局状态/数据，可以理解为数据配置的位置
    // data
    state: ()=>{
        return {
            msg: 'Hello World!',
        }
    },
    // 相当于计算属性
    getters: {},
    // 定义修改数据的方法
    // 相当于methods
    actions: {
        // 接受参数
        changeStoreDemo(value){
            this.msg = value
        }
    }


})


// 你可以任意命名 `defineStore()` 的返回值，但最好使用 store 的名字，同时以 `use` 开头且以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
// 创建一个全局的容器
// 这个容器接受两个参数，第一个参数： 容器的id,第二个参数：容器的内容
//defineStore返回的是一个函数，这个函数按照userXXX去命名   counter---> useCounter
export const useIsCollapse = defineStore('isCollapse', {
    // 容器的内容
    // state: 用来存储全局状态/数据， 可以理解为数据配置的位置
    state: ()=>{
        return {
            isCollapse: false
        }
    },
    // 相当于计算属性
    getters: { },
    // 定义修改数据的方法， 相当于methods
    actions: {
        // 定义一个方法用来修改msg中的数据
        changeIsCollapse(){
            this.isCollapse = !this.isCollapse
        }
    }
})

//  管理item数据
export const useItem = defineStore('item', {
    // 容器的内容
    // state: 用来存储全局状态/数据， 可以理解为数据配置的位置
    state: ()=>{
        return {
            clusterId: "",
            namespace: "",
            item: {
                metadata:{
                    name: "",
                    labels: {},
                    annotations: {},
                },
                spec:{
                    selector: {
                        metchLabels: {},
                    },
                    replicas: 1,
                    template: {
                        metadata: {
                            labels: {},
                            annotations: {},
                        },
                        spec: {
                            imagePullSecret: [],
                            dnsPolicy: 'ClusterFirst',
                            hostNetwork: false,
                            // 存储配置
                            volumes: [],
                            containers: [],
                            initContainers: [],
                        },
                    },
                    strategy: {
                        type: "RollingUpdate",
                        rollingUpdate: {
                            maxUnavailable: "25%",
                            maxSurge: "25%",
                        },
                    }
                },
            }
        }
    },
    // 相当于计算属性
    getters: { },
    // 定义修改数据的方法， 相当于methods
    actions: {

    }
})